﻿using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;

namespace Fabrication.Tests.TestClasses
{
    internal class StringAndInteger
    {
        public string Name { get; set; }
        public int Number { get; set; }
    }

    internal class ClassWithMethod
    {
        public string MethodWithReturnValue() { return "ReturnValue"; }
    }

    internal class NumericNameClass
    {
        public int FirstName { get; set; }
    }

    internal class NumericsOnly
    {
        public int IntValue { get; set; }
        public uint UnsignedIntValue { get; set; }
        public long LongValue { get; set; }
        public ulong UnsignedLongValue { get; set; }
        public float FloatValue { get; set; }
        public double DoubleValue { get; set; }
        public decimal DecimalValue { get; set; }
    }

    internal class AlpabeticalProperties
    {
        public string A { get; set; }
        public string B { get; set; }
        public string C { get; set; }
    }

    internal class KnownTypes
    {
        public int Integer { get; set; }
        public char Character { get; set; }
        public float Single { get; set; }
        public double Double { get; set; }
        public decimal Decimal { get; set; }
        public bool TrueFalse { get; set; }
        public DateTime Date { get; set; }
        public List<string> StringList { get; set; }
        public Collection<string> StringCollection { get; set; }
        public IEnumerable<string> StringEnumerable { get; set; }
    }

    internal class DuplicateKnownTypes
    {
        public int Integer { get; set; }
        public int Integer2 { get; set; }
        public char Character { get; set; }
        public char Character2 { get; set; }
        public float Single { get; set; }
        public float Single2 { get; set; }
        public double Double { get; set; }
        public double Double2 { get; set; }
        public decimal Decimal { get; set; }
        public decimal Decimal2 { get; set; }
        public bool TrueFalse { get; set; }
        public bool TrueFalse2 { get; set; }
        public DateTime Date { get; set; }
        public DateTime Date2 { get; set; }
        public List<string> StringList { get; set; }
        public List<string> StringList2 { get; set; }
        public Collection<string> StringCollection { get; set; }
        public Collection<string> StringCollection2 { get; set; }
        public IEnumerable<string> StringEnumerable { get; set; }
        public IEnumerable<string> StringEnumerable2 { get; set; }
    }
}
